/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.admin.searcher;

import vip.dexian.admin.enums.OperateTypeEnum;
import vip.dexian.common.query.Filter;
import vip.dexian.common.query.Order;
import vip.dexian.common.utils.FilterUtils;
import vip.dexian.common.utils.IpToLongUtils;
import vip.dexian.core.base.query.BasePageableSearcher;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;

import java.util.List;

/**
 * 操作日志分页搜索 表单数据
 *
 * @author 挺好的 2023年06月07日 11:32:34
 */
@Data
@EqualsAndHashCode (callSuper = false)
@Slf4j
public class OperateLogPageSearcher extends BasePageableSearcher {

    /**
     * 功能模块名称
     */
    private String module;

    /**
     * 操作类型
     */
    private OperateTypeEnum operateType;

    /**
     * 操作ip
     */
    private String ip;

    /**
     * 添加搜索条件
     *
     * @return 搜索条件
     */
    @Override
    public List <Filter> filters () {
        Long longIp = IpToLongUtils.toLong(this.ip);
        if (longIp == 0) {
            longIp = null;
        }
        return FilterUtils.builder().equals("module", this.module).equals("operateType", this.operateType)
                .equals("ip", longIp).build();
    }

    /**
     * @return 排序
     */
    @Override
    public List <Order> orders () {
        return null;
    }

}
